The present disclosure relates to controlling start-up and/or power mode switching of hardware resources and to constraining what processing resources, memory resources, and communication resources among the hardware resources within a distributed computing system can be used by software applications.
Distributed computing systems, sometimes also referred to as cloud computing systems, are used to provide services to electronic devices which may be operated by end users. In a cloud computing system, the hardware resource architecture is hidden from the end user. The hardware resource architecture can include computer servers, network non-volatile storage devices, computing devices, network routers, network gateways, wireless/wired network interface circuits, etc. However, because services are deployed on a hardware resource architecture which is hidden from end users, it can be managed, upgraded, replaced or otherwise changed by a system administrator (operator) without the end users being aware of or affected by the change.
In existing cloud and other distributed computing systems, the creator of services or the operator of the cloud system must know in advance which software applications (or types of software applications) need to be deployed and estimate the number and types of physical hardware resources to support processing of the software applications. The capacity of the distributed computer system can be changed by increasing or decreasing the number and/or types of physical hardware resources that are reserved for use by the software applications. During operation, a load balancer can operate to direct requests from user electronic devices to particular ones of the physical hardware resources for processing by associated applications. Although load balancers can provide better balancing of system utilization, they may not sufficiently improve the efficiency at which physical hardware resources are deployed and used, which may have a substantial effect on cost in view of the potential large number of physical hardware resources and software applications that can be deployed in some distributed computer systems.